V300 - Account-name folder access + native Import/Export mirror recovery
======================================================================

This update changes V299's LOGIN routing. It does NOT merge characters between
players, does NOT create character backups, and does NOT restore deleted CHR.

ACCOUNT ACCESS LAW (inside the BG2 router):
  logged in as Drakhysys -> characters/Drakhysys: READ / IMPORT / EXPORT
                           characters/Kronas: ACCESS DENIED
  logged in as Kronas    -> characters/Kronas: READ / IMPORT / EXPORT
                           characters/Drakhysys: ACCESS DENIED
  logged out             -> no account's characters are exposed to native BG2

Character files are permanently stored in the nested account folder. Because
Baldur's Gate II's unmodified native Import/Export engine enumerates the FLAT
characters/ directory, the router presents the active account's files there
via temporary NTFS hardlinks only. Each is the SAME file, not a copy or backup.
Other accounts are never linked to the same native BG2 view. Account folders
stay separate. BG2 Import/Export panels themselves remain native.

This is an application routing/access rule, NOT a Windows NTFS ACL: the other
account folders remain visible in Windows Explorer. Do not set Windows ACL
"deny" on the parent characters directory or BG2 Import/Export will fail.

WHAT CHANGED SINCE V299
1. On an authenticated, registered account LOGIN, an existing folder named
   characters/<accountname> is authoritative. Old/incorrect
   _DRAKHYSYS_ACCOUNT_FLAG.json metadata in that folder can be corrected after
   its matching complete Baldur.lua account registration is verified.
   Unregistered or missing accounts are NOT claimed or reconstructed.
   No CHR/BIO is moved, copied, overwritten or deleted by this repair.
2. A failed login no longer silently overwrites a different folder's ownership
   metadata or disconnects a previously logged-in account's native Import view.
3. On account switch/log out, temporary root hardlinks are disconnected; the
   characters inside each nested folder remain untouched.
4. Account UI messages now show characters/<accountname>, NOT the old
   characters_<accountname> string.
5. V300 emits router_access_status.json about every 10 seconds, with the exact
   selected account, mount, and any silent mount failure.
6. NEW: CHECK_ACCOUNT_CHARACTER_ACCESS.bat produces a readable access report.

INSTALL / TEST (close BG2 and InfinityLoader before installing)
1. Extract the archive. Run SETUP_IN_GAME_ACCOUNTS.bat. Choose your BG2 game
   installation AND the Documents\Baldur's Gate II - Enhanced Edition folder
   (the folder containing your Baldur.lua).
2. Run BG2/InfinityLoader. Log in to the Drakhysys account. Wait a few seconds.
3. With that BG2 window still logged in, run CHECK_ACCOUNT_CHARACTER_ACCESS.bat.
   Select the same Documents profile and inspect the output. It saves the text
   ACCOUNT_CHARACTER_ACCESS_REPORT.txt beside the .bat for easy sharing.
   Expect "Native mirror owner: drakhysys" and MIRRORED: Drakhy.CHR after the
   misplaced character has been repaired into characters/Drakhysys.
4. Log out / close this BG2 game. Open the Kronas game, log into Kronas, and
   run the report again. Expect mirror owner kronas and Kronas/Krokro files.
5. If the report says Router NOT RUNNING, or status older than 30 seconds,
   exit BG2/InfinityLoader and rerun the setup. If still broken, share
   ACCOUNT_CHARACTER_ACCESS_REPORT.txt for investigation.
6. If the report says INVALID / MISMATCHED JSON FLAG, successful BG2 account
   login may correct it only for a complete registered account. If that fails,
   the report will show the reason; do not reset/reinstall the account blindly.

KNOWN MISPLACED FILES SEEN PREVIOUSLY
  Drakhy.CHR / Drakhy.BIO -> Drakhysys
  Krokro.CHR, Kronas.CHR, Kronas 2.CHR (+ matching BIO) -> Kronas
If some are still physically in the wrong nested account directory, the
V299 RECOGNIZE_ACCOUNT_CHARACTERS.bat offers an OPTIONAL confirmation-based
ownership repair. Close all BG2/InfinityLoader windows before using it.
The router does not auto-move another account's characters during login.

IMPORTANT: Installer's inherited V299 policy removes UNASSIGNED loose .CHR and
.BIO files from the parent characters/ (not from characters/<accountname>).
Before reinstalling, ensure all wanted characters are in their intended nested
account directories. This release does not create backups.

TEST LIMITATION
Python regression tests passed in the development sandbox. BG2, InfinityLoader,
Windows NTFS link creation, process detection and in-game Import/Export must
still be verified on the actual Windows installation.
